Packet headers as a trigger for automatic activation of special-purpose softphone applications

ABSTRACT

Methods, devices, and systems for automatically controlling the activation and/or deactivation of communication applications are provided. More specifically, methods, devices, and systems are provided such that the inspection of communication packet headers can be leveraged as a trigger for automatically activating and/or deactivating communication applications and the population of a corresponding user-interface to the application.

FIELD OF THE INVENTION

The invention relates generally to communications and more specifically to communication applications.

BACKGROUND

In computing, a softphone is a software program for making telephone calls over the Internet using a general purpose computer, rather than using dedicated hardware. Often a softphone is designed to behave like a traditional telephone, sometimes appearing as an image of a phone, with a display panel and buttons with which the user can interact. A softphone is usually used with a headset connected to the sound card of the PC, laptop, or the like, or with a USB phone.

Traditionally, softphone applications have had embedded support only for voice and video communication. When a specialized communication medium is required, such as Teletypewriter or Teletype (TTY), the softphone must be operated in a mode that places it in conjunction with a separate special-purpose endpoint device. It may be possible to provide embedded support for TTY into a softphone. However, if TTY communications are required, then a text chat window will need to be populated on the softphone.

SUMMARY

The use of a text chat window is not necessarily that difficult to implement. However, in order to prevent the Graphical User Interface (GUI) of the softphone from becoming unnecessarily cluttered, it is desirable that the text chat window be presented only when required, and that it remain hidden or inactive when not required.

It is also desirable only to enable communications via a certain medium to prevent the unnecessary utilization of communication hardware and network bandwidth. For example, if two communication devices are both capable of communicating via voice, video, and text, it may not be desirable to assign hardware resources for voice, video, and text at the onset of the communication session unless the participants are going to use all three media. Not only would hardware resources (e.g., ports, drivers, processors, memory, etc.) be unnecessarily consumed, but network bandwidth would also be unnecessarily consumed. It would be much more desirable to assign such resources on an as-needed basis and in response to the desires and needs of the communication session participants.

Some existing communication solutions allow users to activate the application windows manually. However, it is important to note that, in a completely manual process, participants (especially contact center agents) may not be aware that a call is from a TTY user and, therefore, may fail to enable a text window in a timely manner. Accordingly, it is one aspect of the present invention to allow an application window, such as a text window, to be activated automatically by the softphone for calls that were pre-identified as being from TTY users.

Contact center techniques exist for pre-identifying TTY callers that include requiring the callers to call into the center via a TTY-only inbound phone number and/or presenting callers with an automated attendant application that asks them to self-identify. In both cases, calls are placed in a TTY hunt group prior to their being presented to an agent. A call may be tagged as being from the TTY hunt group to automatically trigger the contact center agent's communication device to activate its text window.

The above-described automatic activation techniques still fail to solve the following problems:

(1) Softphone-equipped employees at an enterprise may receive direct-dial calls from PSTN-based TTY users, in the same way that inbound direct-dial voice calls may be received. Calls may also be transferred between employees of a contact center without traversing the TTY hunt group. In these scenarios, currently available techniques do not provide a way to activate the called party's text window automatically because there is no pre-identification of TTY users.

(2) In communication environments that support multi-mode “unified communication,” people, including those with no disability-related need to use a TTY, may wish to supplement their communications with a different medium at some point during the communication session. For example, “Party A” may wish to send “Party B” a URL that cannot conveniently be sent by voice, or may simply wish to transmit something by text because voice can be overheard by people who are nearby. In these scenarios, the prior art techniques do not provide a way to automatically activate Party B's text window (or other data-appropriate application).

In response to these problems, embodiments of the present invention provide another mechanism that will cause an application and/or the application's window to open automatically.

It is one aspect of the present invention to take advantage of a “TTY-on-IP” codec that was implemented in Avaya gateways approximately six years ago. The gateway solution works in the following manner:

Rather than transport TTY signals on IP networks as in-band audio tones (which are prone to distortion in the presence of packet loss or audio compression), Avaya systems transport TTY signals as, what are in essence, verbal descriptions of the tones. The encoding format conforms to the protocol specified by IETF Standard RFC-2833. Consistent with the RFC-2833 standard, the packets have headers that identify the format of the information contained within the packet.

In accordance with at least some embodiments of the present invention, all packets that contain TTY information, that are received by a communication device from a gateway or from another communication device, will have headers that can indicate: “This packet contains TTY information.” Based solely on its inspection of the packet headers, with no inspection of the packet content, a packet analyzer provided in a communication device, such as a softphone, can be user-configured to open its TTY/text window immediately and automatically upon receipt of a TTY transmission that is formatted in the above-described manner.

While certain examples will be discussed herein related to the automatic triggering of a text window and text application, one skilled in the art will appreciate that embodiments of the present invention are not so limited. More specifically, embodiments of the present invention include the general idea of utilizing packet headers as a trigger for automatic activation or de-activation of a special-purpose software application, which may or may not be implemented in conjunction with a softphone.

Illustratively, in addition to RFC-2833, industry-standard protocols that support conversational text in SIP environments include RFC-4103, RFC-4351, and RFC-5194. Detection of an RFC-4103, RFC-4351, or RFC-5194 packet header could trigger the automatic opening of a text chat window. Alternatively, or in addition, if a communication session begins as a text-based communication, the detection of a G.711, G.722, G.726, G.729, or any other voice-based packet header could trigger the automatic opening of a voice application window. Alternatively, or in addition, if a communication session begins as a non-video-based communication, the detection of a video packet header could trigger the automatic opening of a video application window. Exemplary video standards which may be followed in forming a video packet include, but are not limited to, RFC-2250, RFC-3189, RFC-4175, RFC-4421, and others.

The standards discussed above in connection with the various media types are but examples of the well-known and, in some instances, standardized codecs used today. Embodiments of the present invention are not limited to these exemplary codecs and standards should not be construed in such a manner.

In other words, the fundamental premise of the present invention can be extended beyond the automatic opening of a text chat window. For example, the receipt of a packet header that indicates video content could trigger the automatic opening of a video display window. In this scenario, initial negotiation of the communication session would serve as a confirmation that the endpoints are video-capable, but would not necessarily cause the utilization of a video-based communication session. In order to conserve screen real estate, a video window would not be opened by the communication endpoint prior to the endpoint's receipt of video packets that call for it. Although conservation of screen space is one beneficial feature obtained by implementing certain embodiments of the present invention, utilization of mechanisms described herein also include: (1) preservation of computer resources, such as CPU and memory, by not assigning them to a softphone's special applications until these resources are known to be needed and (2) conserving network bandwidth by not reserving such bandwidth for the special applications until it is known to be needed.

In accordance with at least some embodiments of the present invention, the communication endpoint might ask for the user's confirmation before opening a window automatically (e.g., “You are receiving a video transmission. Do you want to see it?”).

In accordance with at least some embodiments of the present invention, inspection of the packet header alone would trigger the opening of the appropriate application and window and, simultaneously, trigger the activation of the required codec. As an example of why this might be desirable, RFC-2833 and RFC-4103 encode text differently. An endpoint would need to activate a different codec upon receipt of an RFC-2833 or RFC-4103 packet, but might nevertheless use the same text chat GUI window for both.

In accordance with at least some embodiments of the present invention, a buffer in the receiving communication device is adapted to save and allow the subsequent playback of information that was received while the special-purpose application is being enabled. Illustratively, this would ensure that the TTY character that triggered the text chat window is seen by the recipient immediately upon opening the text chat GUI window.

In accordance with at least some embodiments a method is provided that generally comprises:

establishing, at a first communication device, a communication session with a second communication device, wherein the first communication device utilizes at least a first application for communicating with the second communication device via at least a first medium, the first medium having been negotiated prior to the establishment of the communication session;

during the communication session, receiving as a part of the communication session a communication packet at the first communication device;

analyzing, by the first communication device, a header portion of the received communication packet; and

based on the analysis of the header portion, invoking by the first communication device at least a second application for communicating via at least a second medium.

The term “computer-readable medium” as used herein refers to any tangible storage and/or transmission medium that participates in storing and/or providing instructions to a processor for execution. Such a medium may take many forms, including but not limited to, non-volatile media, volatile media, and transmission media. Non-volatile media includes, for example, NVRAM, or magnetic or optical disks. Volatile media includes dynamic memory, such as main memory. Common forms of computer-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, or any other magnetic medium, magneto-optical medium, a CD-ROM, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, RAM, PROM, EPROM, FLASH-EPROM, solid state medium like a memory card, any other memory chip or cartridge, a carrier wave as described hereinafter, or any other medium from which a computer can read. A digital file attachment to e-mail or other self-contained information archive or set of archives is considered a distribution medium equivalent to a tangible storage medium. When the computer-readable media is configured as a database, it is to be understood that the database may be any type of database, such as relational, hierarchical, object-oriented, and/or the like. Accordingly, the invention is considered to include a tangible storage medium or distribution medium and prior art-recognized equivalents and successor media, in which the software implementations of the present invention are stored.

The terms “determine,” “calculate” and “compute,” and variations thereof, as used herein, are used interchangeably and include any type of methodology, process, mathematical operation or technique.

The term “module”, “agent”, or “tool” as used herein refers to any known or later developed hardware, software, firmware, artificial intelligence, fuzzy logic, or combination of hardware and software that is capable of performing the functionality associated with that element. Also, while the invention is described in terms of exemplary embodiments, it should be appreciated that individual aspects of the invention can be separately claimed.

The preceding is a simplified summary of embodiments of the invention to provide an understanding of some aspects of the invention. This summary is neither an extensive nor exhaustive overview of the invention and its various embodiments. It is intended neither to identify key or critical elements of the invention nor to delineate the scope of the invention but to present selected concepts of the invention in a simplified form as an introduction to the more detailed description presented below. As will be appreciated, other embodiments of the invention are possible utilizing, alone or in combination, one or more of the features set forth above or described in detail below.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is block diagram depicting a communication system in accordance with at least some embodiments of the present invention;

FIG. 2A is a first screen shot of a user interface in accordance with at least some embodiments of the present invention;

FIG. 2B is a second screen shot of a user interface in accordance with at least some embodiments of the present invention;

FIG. 2C is a third screen shot of a user interface in accordance with at least some embodiments of the present invention; and

FIG. 3 is a flow diagram depicting a communication method in accordance with at least some embodiments of the present invention.

DETAILED DESCRIPTION

The invention will be illustrated below in conjunction with an exemplary communication system. Although well suited for use with, e.g., a system using a server(s) and/or database(s), the invention is not limited to use with any particular type of communication system or configuration of system elements. Those skilled in the art will recognize that the disclosed techniques may be used in any communication application in which it is desirable to automatically manage the activation and/or de-activation of communication applications.

The exemplary systems and methods of this invention will also be described in relation to analysis software, modules, and associated analysis hardware. However, to avoid unnecessarily obscuring the present invention, the following description omits well-known structures, components and devices that may be shown in block diagram form, are well known, or are otherwise summarized.

For purposes of explanation, numerous details are set forth in order to provide a thorough understanding of the present invention. It should be appreciated, however, that the present invention may be practiced in a variety of ways beyond the specific details set forth herein.

Referring now to FIG. 1, an exemplary communication system 100 is depicted in accordance with at least some embodiments of the present invention. The communication system 100 may comprise a communication network 104 that facilitates communications (e.g., voice, image, video, data, other non-voice media types employing protocols that support conversational text, such as those described in RFC-4103 (RTP Payload for Text Conversation), RFC-2833, RFC-4351, RFC-5194, and combinations thereof) between various communication devices 108.

The communications between communication devices 108 may be direct communications or, in some embodiments, may be facilitated by a communications server and/or switch. In other embodiments, communications between communication devices 108 may traverse one or more gateway 112, such as in a contact center configuration where one communication device 108 is operated by a contact center agent on an enterprise side of the gateway 112 and another communication device 108 is operated by a customer on the public side of the gateway 112.

The communication network 104 may be any type of known communication medium or collection of communication media and may use any type of protocols to transport messages between endpoints. The communication network 104 may include wired and/or wireless communication technologies. The Internet is an example of the communication network 104 that constitutes an IP network consisting of many computers and other communication devices located all over the world, which are connected through many telephone systems and other means. Other examples of the communication network 104 include, without limitation, a standard Plain Old Telephone System (POTS), an Integrated Services Digital Network (ISDN), the Public Switched Telephone Network (PSTN), a Local Area Network (LAN), a Wide Area Network (WAN), a Session Initiation Protocol (SIP) network, a cellular communication network, a satellite communication network, any type of enterprise network, and any other type of packet-switched or circuit-switched network known in the art. Generally speaking however, the communication network 104 comprises at least one packet-based communication network. In addition, it can be appreciated that the communication network 104 need not be limited to any one network type, and instead may be comprised of a number of different networks and/or network types.

The communication devices 108 may be any type of known communication or processing device such as a Digital Control Protocol (DCP) phone, VoIP telephones, Push-To-Talk (PTT) telephony devices, a computer (e.g., personal computer, laptop, or Personal Digital Assistant (PDA)) with a Computer Telephony Interface (CTI), a mobile telephone, a smart phone, or combinations thereof. In accordance with at least some embodiments of the present invention, at least one of the communication devices 108 is a softphone. The term “softphone” as used herein should be understood to include any type of device comprising a processor and memory having one or more communication applications stored thereon. The communication applications stored on the communication device 108 allow the communication device to operate and behave like a traditional phone having dedicated hardware for facilitating communications. A softphone, on the other hand, does not generally have dedicated hardware to facilitate real-time communications with other users of other communication devices. Rather, the softphone utilizes one or more of its applications to facilitate such communications. In some embodiments, the softphone may be embodied as a single device (e.g., a PC, laptop, or similar type of personal workstation) which is connected to the Internet. In other embodiments, the softphone may be embodied as multiple devices where one device comprises the communication application(s) but is connected to another simple telephone which provides the connection between the device having the application(s) and the PSTN, for example. Other configurations of softphones are well known to those skilled in the art and are, therefore, not elaborated further herein.

The communication device 108 may be controlled by or associated with a single user or may be adapted for use by many users (e.g., an enterprise communication device that allows any enterprise user to utilize the communication device upon presentation of a valid user name and password). In general the communication device 108 may be adapted to support video, audio, text, and/or data communications with other communication devices 108. The type of medium used by the communication device 108 to communicate with other communication devices 108 may depend upon the communication applications available on the communication device 108.

One or more of the communication devices 108 may comprise various components that enable it to transmit and receive packets containing voice, video, text, and/or data communications across the communication network 104. A communication device 108 may, therefore, include a memory 116 and a processor 128. As noted above, the memory 116 may include a number of applications or executable instructions that are readable and executable by the processor 128. For instance, the memory 116 may include a plurality of communication applications 120 a-N and a packet analyzer 124.

The communication applications 120 a-N may be specifically used by the communication device 108 for communicating via a particular medium or possibly via a different standard in the same medium. As one example, the first application 120 a may correspond to a voice-based application, the second application 120 b may correspond to a text-based application, and the Nth application 120N may correspond to a video-based application.

The packet analyzer 124 is provided to analyze packets received at the communication device and determine, based on the results of the analysis, whether one or more of the applications 120 a-N should be activated and/or de-activated. The packet analyzer 124 is generally operable to analyze the contents of the header portion of packets received during a communication session. In some embodiments, the communication session has already been established and the packets received during the communication session are generally assumed to be carrying the data according to a pre-negotiated format. However, conditions may change such that during an established communication session one communication device 108 begins utilizing another communication medium as a part of the communication session, perhaps unbeknown to the other communication device 108. This newly utilized medium may cause packets of a different format to be transmitted to the other communication device 108 in a different and previously non-negotiated format. The packet analyzer 124 is capable of identifying such packets by the contents of their header and not necessarily by inspecting the data contents of the packets themselves (i.e., via a non-deep-packet inspection). Once the packet analyzer 124 identifies such a packet, the packet analyzer 124 is capable of invoking the appropriate application 120 to supplement the communication session.

In addition, the communication device 108 may comprise user interface 132 that is adapted to facilitate user control of the communication device 108 and a network interface 136 that is adapted to connect the communication device 108 to the communication network 104. The network interface 136 may comprise a communication modem, a communication port, or any other type of device or driver adapted to condition packets for transmission across the communication network 104 to a destination communication device 108 as well as condition received packets for processing by the processor 128. Examples of network interfaces 136 include, without limitation, a network interface card, a modem, a wired telephony port, a serial or parallel data port, radio frequency broadcast transceiver, a USB port, or other wired or wireless communication network interfaces.

The user interface 132 may comprise any type of known user input and/or user output technologies. For example, the user interface 132 may comprise a GUI to facilitate visual communication control of a voice communication session as well as facilitate text and video-based communication sessions. Additionally, the user interface 132 may comprise an audio interface (e.g., speaker and microphone) which allows the user to hear voice communications and project voice communications to the other communication session participants. In some embodiments the user input and user output portions of the user interface 132 may be separate and distinct. In other embodiments, the user input and user output portions of the user interface 132 may be combined, such as in a touch-screen interface.

Each application 120 a-N may also have its own dedicated interface window or control screen that allows a user of the communication device 108 to control the application 120 and further control the communication session, or at least the medium controlled by the application 120. Thus, if multiple media are being used during a single communication session, multiple windows may be opened and displayed on the user interface 132. In accordance with at least some embodiments of the present invention, when an application is invoked during an established communication session, the interface window for that application may also be automatically displayed via the user interface 132.

Referring now to FIGS. 2A-2C, an exemplary set of screen-shots of a GUI 200 will be described in accordance with at least some embodiments of the present invention. Referring initially to FIG. 2A, a first screen-shot of a GUI 200 is depicted wherein a first application interface window 204 is displayed on the GUI 200. The first application interface window 204 may correspond to the application 120 which is being used to facilitate communications via a first medium during an established communication session. The first medium may comprise one of voice, video, data, and text. Therefore, the first application interface window 204 may correspond to one of a control interface for voice communications, a video screen with a control interface, a text-chat window, or a data window.

With reference now to FIG. 2B, if a far-end user decides to begin using a second medium as a part of the communication session, the far-end user may open a second application or in some other fashion begin transmitting newly formatted packets to the other communication device 108 involved in the communication session. The newly formatted packets may be received in the data stream of the established communication session (e.g., over the same port and possibly interspersed between the packets carrying data for the first medium), but the newly formatted packets may be carrying data according to a different standard.

When the packet analyzer 124 detects such a newly formatted packet, possibly by analyzing the header of the packet and identifying that a new packet format is being used, the packet analyzer 124 may automatically identify the second medium and perform one of following two functions: (1) automatically invoking the application which facilitates communications via the second medium or (2) querying the user of the communication device 108 if they want to communicate via the second medium.

FIG. 2B depicts the scenario where a query is transmitted visually to a user of the communication device 108 via a popup window 208. One skilled in the art will appreciate that an audio query may also be utilized to ask the user if the second medium should be utilized as a part of the communication session. Exemplary audio queries may be transmitted possibly via a whisper page, interrupt, or similar type of audio communication.

If the user affirmatively responds to the query or in the event that the packet analyzer 124 automatically invokes the appropriate application, then a new application interface window 212 is presented via the user interface 132, such as is depicted in FIG. 2C. In some embodiments, the first application interface window 204 may be automatically re-sized to accommodate the new application interface window 212. In other embodiments, the new application interface window 212 may be placed partially or completely over the first application interface window 204. In other embodiments, the new application interface window 212 may be opened behind the first application interface window 204, but some other sort of audio or visual indicia may be presented to the user indicating that the new application interface window 212 has been opened.

Referring now to FIG. 3, an exemplary communication method will be described in accordance with at least some embodiments of the present invention and from the perspective of a single communication device 108. One skilled in the art will appreciate that embodiments of the present invention can be equally applied to two-party communication sessions and multi-party communication sessions without departing from the scope of the present invention.

The method begins when a communication initialization message is received at the communication device 108 (step 304). The communication initialization message may include a call setup signal, an H.323 call setup message, a SIP INVITE message, or any other type of message or collection of messages used to initiate a communication session.

Thereafter, or possibly included in the communication initialization message or exchange of communication initialization messages, the communication device 108 negotiates parameters for the communication session (step 308). During this negotiation step the communication device may determine the communication capabilities of the far-end device as well as define which medium or media are to be used initially as a part of the communication session. In some embodiments, the communication devices are capable of communicating via first, second, third, and fourth media (e.g., voice, video, text, and data) but may agree to only communicate initially via one such medium. Still, the devices may share their communication capabilities to facilitate a smooth and efficient session transition to other media. For example, in some embodiments codecs for all media may be pre-negotiated even though only a single medium is being used initially. The pre-negotiation is not a requirement, however.

After the initial communication session parameters have been negotiated, the method continues with the establishment of the communication session via the first medium (step 312). In this particular example, the first medium may correspond to a voice medium. To facilitate communications via the first medium, the communication device 108 may invoke a first corresponding application which allows the user of the communication device to control the voice call.

During the established communication session the far-end communication device may begin utilizing a second communication medium. This is typically initiated by an action of a user of the far-end communication device (e.g., opening a video channel, sending a text message, sending an email, or the like). The user of the other communication device may not be aware of the far-end user's actions and may not have applications open for every possible medium that could be used during the communication session. Rather, as a part of the communication session, packets are received at the communication device 108 from the far-end device (step 316). Each of these packets may be analyzed by the packet analyzer 124 to determine if a new medium is being used (step 320). In particular, the packet analyzer 124 may analyze the header portion of the packets to determine if the packet is identifying itself as carrying data for a medium other than the first medium. Analysis of the header portion of the packet allows the packet analyzer 124 to quickly determine if a new medium is being used during the communication session. This results in the ability to support real-time or near real-time communications in a manner which minimizes the delay between detecting a new medium and invoking a new application to facilitate user communications via the new medium. This is particularly useful for far-end TTY users to ensure that the far-end user does not get the sense that they are being ignored or that the call has been dropped. It is also useful in emergency situations or other types of time-sensitive situations.

If the packet analyzer 124 determines that the received packet is only carrying data for the first medium, then the method proceeds to step 324 where it is determined if the communication session has been terminated (e.g., via detection of a communication-ending message such as a SIP BYE message, an H.323 termination message, or detection of an on-hook state)(step 324). If this query is answered negatively, then the method returns back to step 316. If this query is answered affirmatively, then the communication session is terminated (step 328). As an optional step, the application(s) which were previously opened to facilitate the communication session may be automatically or manually closed (step 332).

Referring back to the inquiry of step 320, in the event that the packet analyzer 124 detects a packet formatted to carry data for a medium other than the first medium, then the method continues with the packet analyzer 124 identifying the new medium and further identifying the application 120 which is used to facilitate communications via the new medium (step 336).

Once the packet analyzer 124 identifies the new medium and corresponding application 120, the packet analyzer 124 determines whether a new application interface window should be opened to facilitate communications via the new medium (step 340). If the packet analyzer 124 has been pre-programmed to automatically open a new application interface window upon detecting a new medium, then the method may continue invoking the application and opening its corresponding interface window (step 344). Similarly, if the packet analyzer 124 queries the user of the communication device whether they want to allow the new application interface window to be opened and the user responds affirmatively, then the new application can be invoked and the corresponding interface window may be opened. This query may also be answered affirmatively if the appropriate application is already opened and/or the corresponding application interface window is opened.

Thereafter, the communication session is allowed to continue with the new media (step 348). As can be appreciated by one skilled in the art the new media may either replace the first media or supplement the first media. In the situation where the new media supplements the first media, multiple application interface windows may be simultaneously opened on the user interface 132 or a single application interface window capable of facilitating the multi-media communication may be utilized. Thereafter, or in the event that it was decided at step 340 not to utilize the new medium, the method continues to step 324 to determine if the communication session has been terminated.

In additional embodiments of the present invention, a mega-packet that has an audio packet and a video packet bundled within a single mega-packet can be used as a way to ensure that the video and corresponding audio arrive together, are buffered together, and are presented by the receiving device together. In accordance with at least some embodiments of the present invention, if a packet is received as self-identifying the use of RFC-4351, RFC-2198 or some other packet format having multiple media types, then multiple applications may be simultaneously invoked for various different media types corresponding to the media types contained within the mega-packet.

While the above-described flowchart has been discussed in relation to a particular sequence of events, it should be appreciated that changes to this sequence can occur without materially effecting the operation of the invention. Additionally, the exact sequence of events need not occur as set forth in the exemplary embodiments. The exemplary techniques illustrated herein are not limited to the specifically illustrated embodiments but can also be utilized with the other exemplary embodiments and each described feature is individually and separately claimable.

The systems, methods and protocols of this invention can be implemented on a special purpose computer in addition to or in place of the described communication equipment, a programmed microprocessor or microcontroller and peripheral integrated circuit element(s), an ASIC or other integrated circuit, a digital signal processor, a hard-wired electronic or logic circuit such as discrete element circuit, a programmable logic device such as PLD, PLA, FPGA, PAL, a communications device, such as a server, personal computer, any comparable means, or the like. In general, any device capable of implementing a state machine that is in turn capable of implementing the methodology illustrated herein can be used to implement the various communication methods, protocols and techniques according to this invention.

Furthermore, the disclosed methods may be readily implemented in software using object or object-oriented software development environments that provide portable source code that can be used on a variety of computer or workstation platforms. Alternatively, the disclosed system may be implemented partially or fully in hardware using standard logic circuits or VLSI design. Whether software or hardware is used to implement the systems in accordance with this invention is dependent on the speed and/or efficiency requirements of the system, the particular function, and the particular software or hardware systems or microprocessor or microcomputer systems being utilized. The analysis systems, methods and protocols illustrated herein can be readily implemented in hardware and/or software using any known or later developed systems or structures, devices and/or software by those of ordinary skill in the applicable art from the functional description provided herein and with a general basic knowledge of the communication and computer arts.

Moreover, the disclosed methods may be readily implemented in software that can be stored on a storage medium, executed on a programmed general-purpose computer with the cooperation of a controller and memory, a special purpose computer, a microprocessor, or the like. In these instances, the systems and methods of this invention can be implemented as program embedded on personal computer such as an applet, JAVA® or CGI script, as a resource residing on a server or computer workstation, as a routine embedded in a dedicated communication system or system component, or the like. The system can also be implemented by physically incorporating the system and/or method into software and/or hardware system, such as the hardware and software systems of a communications device or system.

It is therefore apparent that there has been provided, in accordance with the present invention, systems, apparatuses and methods for managing communication applications. While this invention has been described in conjunction with a number of embodiments, it is evident that many alternatives, modifications and variations would be or are apparent to those of ordinary skill in the applicable arts. Accordingly, it is intended to embrace all such alternatives, modifications, equivalents and variations that are within the spirit and scope of this invention. 

1. A method, comprising: establishing, at a first communication device, a communication session with a second communication device, wherein the first communication device utilizes at least a first application for communicating with the second communication device via at least a first medium, the first medium having been negotiated prior to the establishment of the communication session; during the communication session, receiving as a part of the communication session a communication packet at the first communication device; analyzing, by the first communication device, a header portion of the received communication packet; and based on the analysis of the header portion, invoking by the first communication device at least a second application for communicating via at least a second medium.
 2. The method of claim 1, wherein the second medium was not negotiated during the establishment of the communication session.
 3. The method of claim 1, wherein the first medium comprises one of voice, video, text, and data, wherein the second medium comprises one of voice, video, text, and data, and wherein the first and second media are different.
 4. The method of claim 1, wherein only the header portion of the received communication packet is analyzed and wherein the first communication device automatically invokes the at least a second application.
 5. The method of claim 4, wherein the received communication packet includes data formatted according to a communication standard for the second medium and wherein the header describes at least one of a portion of the data and the communication standard.
 6. The method of claim 5, wherein the header describes the communication standard.
 7. The method of claim 1, further comprising: querying a user of the first communication device as to whether or not the first user desires to invoke the second application; and invoking the second application only in the event that an affirmative response to the query is received from the user.
 8. The method of claim 1, wherein the second application is automatically invoked by the first communication device without querying a user of the first communication device and wherein contents of the received communication packet are automatically presented to the user of the first communication device via the second application.
 9. The method of claim 1, wherein the first communication device comprises a softphone.
 10. A computer readable medium encoded with processor executable instructions operable to, when executed, perform the method of claim
 1. 11. A communication device, comprising: a first application which facilitates communications via at least a first medium; a second application which facilitates communications via at least a second medium; and a packet analyzer adapted to analyze header portions of communication packets received during an established communication session and determine, based on the analysis of the header portions, whether to invoke one or both of the first and second applications for the communication session after the communication session has been established.
 12. The device of claim 11, wherein use of the first medium for the communication session was negotiated during the establishment of the communication session, wherein the first application was invoked during the establishment of the communication session, wherein the second medium was not negotiated during the establishment of the communication session, and wherein the packet analyzer determines to invoke the second application after the communication session has been established.
 13. The device of claim 12, wherein the first medium comprises one of voice, video, text, and data, wherein the second medium comprises one of voice, video, text, and data, wherein the first and second media are different, and wherein the first and second applications are presented via different windows on a user interface of the device.
 14. The device of claim 12, wherein only the header portion of the received communication packet is analyzed and wherein the packet analyzer automatically invokes the second application.
 15. The device of claim 14, wherein the received communication packet includes data formatted according to a communication standard for the second medium and wherein the header describes at least one of a portion of the data and the communication standard.
 16. The device of claim 15, wherein the header describes the communication standard.
 17. The device of claim 12, wherein the second application is automatically invoked by the first communication device without querying a user of the first communication device and wherein contents of the received communication packet are automatically presented to the user of the first communication device via the second application.
 18. A computer program product comprising computer executable instructions stored onto a computer readable medium which, when executed by a processor of a computer, cause the processor to execute a method, the method comprising: receiving a communication packet as a part of and during an established communication session; analyzing only a header portion of the communication packet; and based on the analysis of the header portion, invoking a communication application to facilitate communications via a communication medium not originally utilized at the establishment of the communication session.
 19. The computer program product of claim 18, wherein the received communication packet includes data formatted according to a communication standard for the communication medium and wherein the header describes at least one of a portion of the data and the communication standard.
 20. The computer program product of claim 19, wherein the header describes the communication standard. 